// 使用 import.meta.glob() 方法读取指定目录下所有 setup.ts 文件的信息，并将其作为一个对象 otherRouter 存储起来。
// 设置配置项 eager 为 true，表示在模块加载时就要导入。import 设置为 'default'，表示只导入模块的默认导出。
const otherRouter = import.meta.glob('@/components/other/**/setup.ts', {
    eager: true,
    import: 'default',
});

// 使用 import.meta.glob() 方法读取指定目录下所有 index.vue 文件的信息，并将其作为一个对象 comps 存储起来。
const comps=import.meta.glob('@/components/other/**/index.vue');

// 定义一个接口 Item，用于描述路由的基本信息。
interface Item {
    path:string,
    title:string,
    illustrate:string,
    menuOrder:number,
    classification:string,
}

// 将 otherRouter 对象转换为数组，并遍历每一项路由信息对象。
// 对每一个路由信息对象：
// - 根据 path 属性和 comps 对象拼接出对应组件的路径。
// - 使用 comps 对象中对应的组件作为该路由的组件。
// - 将路由对象中的其他属性赋值，并返回最终的路由信息对象数组 otherRouters。
export const otherRouters=Object.entries(otherRouter).map(([path, meta]) =>{
    const compPath=path.replace('setup.ts','index.vue');
    return {
        path:  (meta as Item).path,
        name:  (meta as Item).title,
        component: comps[compPath],
        meta:{
            title:  (meta as Item).title,
            illustrate:  (meta as Item).illustrate,
            classification:(meta as Item).classification,
        }
    };
});
// export const copyText=Object.entries(otherRouter).map(([path, meta]) =>{
//     const compPath=path.replace('setup.ts','index.vue');
//     return {
//         path:  (meta as Item).path,
//         name:  (meta as Item).title,
//         component: comps[compPath],
//         meta:{
//             title:  (meta as Item).title,
//             illustrate:  (meta as Item).illustrate,
//             classification:(meta as Item).classification
//         }
//     };
// });
// 导出最终的路由信息数组 otherRouters。
export default otherRouters;